Skip to content

DEV: add not-submitted projects attention UI - #334

Merged
TThanos3000 merged 1 commit into
devfrom
feature/dev-program-not-submitted-attention-ui
Sep 6, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feature/dev-program-not-submitted-attention-ui

Conversation

@TThanos3000

Copy link
Copy Markdown
Contributor

Что изменено

Добавлен Angular-сценарий «Проекты не сдали решение» в существующую аналитику программы.

  • В «Требует внимания» порядок: участники без команды → работы ожидают оценивания → проекты не сдали решение → задерживающие эксперты.
  • Применимость и count берутся из attention.projectsNotSubmitted: false — строка скрыта и detail не запрашивается; true/0 — видимая disabled-кнопка; true/>0 — открытие по клику. Старый solutionFunnel.notSubmitted не используется как основание для attention.
  • Новый root-view projects-not-submitted использует существующие overlay, dialog и единственный focus trap.
  • Таблица desktop / stacked rows mobile: проект, руководитель (nullable, существующий avatar), дата связи с программой, серверный статус, RouterLink «Открыть проект». Длинные значения допускают перенос.
  • Срок и открытость берутся из submissionDeadline / submissionOpen; дата отображается в локальном часовом поясе браузера. При null — «Срок сдачи не указан». Клиент не вычисляет SLA/оставшееся время/severity.
  • Поиск серверный по Enter/«Найти», не на каждый символ; clear сбрасывает offset; limit=25; переходы страниц не используют next URL напрямую. Loading, empty, search-empty, ошибки 401/403/404/network и retry сохраняют существующий контролируемый flow без raw HTTP body.
  • Удалена только отображаемая строка «Сдали проект» из participant funnel. submittedProjectCreators остаётся в Angular/domain/API contract; «Сдано» в воронке проектов продолжает использовать solutionFunnel.submitted. Regression с 2 руководителями и 6 проектами.
  • Добавлены типы, port/adapter/repository/use case, тесты CamelcaseInterceptor и документация модуля с JSDoc.

База и backend-контракт

  • Target: dev
  • Exact Angular base SHA: ed06dff90feff709737b7c47ab405ec99623167f (повторно проверен перед commit)
  • Head: a6336666eb3203e0a9e112e25328d942a9029750
  • Ветка: feature/dev-program-not-submitted-attention-ui
  • Backend PR #726 смержен.
  • Backend feature head: bc9105a1e0371bb3719e2d41cfd81cfbb392396d
  • Exact backend merge SHA: 4dea5bd8893839e46800f5c9ee20646fc6307aab
  • DEV deploy завершился успешно для этого exact merge SHA.
  • Используется GET /programs/:programId/manager-overview/projects-not-submitted/?search=...&limit=25&offset=0. Backend не изменялся.

Отмена, SPA и доступность

Используется прежний cancelAttention + takeUntilDestroyed; второй механизм race-control не добавлен. Запрос отменяется при close, новом root-open, поиске, странице, смене программы, destroy и RouterLink. Поздний Subject не меняет актуальный state.

Regression использует observable parent paramMap 12 → 13 до resolver: exposed programId становится null, модалка закрывается, старый request unsubscribe, данные очищаются. После Program(13) загружается только overview; новый detail ждёт клика.

Новый view включён в parameterized lifecycle tests: focus только после attachment, Escape/backdrop/close, единственный trap, возврат на конкретный connected trigger, отсутствие возврата при disconnected trigger, RouterLink, смене программы и destroy. Shared app-modal не менялся.

Проверки

Проверка Результат
Targeted program/analytics/pipeline/camelcase 266/266, 34 файла
Полный npm run test:ci 1281/1281, 348 файлов
npm run lint:ts Успешно, 0 ошибок; 6 предупреждений unused eslint-disable в неизменённых файлах
Scoped Prettier Успешно
Scoped Stylelint Успешно
npm run build:prod Успешно; присутствуют предупреждения шаблонов, CSS budget и CommonJS
git diff --check Успешно
git diff --cached --check Успешно до commit и после
git diff origin/dev...HEAD --check Успешно

Targeted команда:

npx vitest run projects/social_platform/src/app/api/program projects/social_platform/src/app/ui/pages/program/detail/analytics projects/social_platform/src/app/infrastructure/adapters/program/program-http.adapter.spec.ts projects/social_platform/src/app/infrastructure/repository/program/program.repository.spec.ts projects/core/src/lib/interceptors/camelcase.interceptor.spec.ts

Дополнительно запускался npx tsc --project tsconfig.vitest.json --noEmit: он не проходит на ранее существовавших тестовых строках (HttpRequest generic в старом camelcase тесте, неполные User/overview fixtures, project-main-step DOM typings, tooltip nullability). Эти unrelated строки не исправлялись. Production build и обязательный Vitest suite прошли.

Локальный commit-hook запускает repository-wide Stylelint с --fix; он пропущен только для этого commit, чтобы не форматировать unrelated SCSS. Lint и scoped Stylelint выполнены явно.

Ручной smoke

Не выполнен; реальный E2E не объявляется пройденным. Computer Use остановил работу с Yandex Browser: текущий Windows-браузер не поддерживается механизмом контроля URL инструмента. Обход ограничения не выполнялся; нет новых desktop/mobile screenshots и проверки в реальном DEV browser. До Ready остаётся ручной desktop/mobile/keyboard smoke. Component tests используют реальный CDK Overlay, но не заменяют браузерную визуальную проверку.

Scope

23 файла, 811 insertions / 167 deletions. Только Angular-аналитика, связанный data layer, тесты и документация.

Backend, React, shared app-modal, зависимости/lockfile, workflows, Docker и deploy не изменены. Генерируемый build-ом sprite возвращён в исходное состояние и в diff не входит. Merge и deploy не выполнялись; PR остаётся Draft.

Изменённые файлы
  • docs/modules/program.md
  • projects/core/src/lib/interceptors/camelcase.interceptor.spec.ts
  • projects/social_platform/src/app/api/program/facades/detail/program-analytics-attention.service.spec.ts
  • projects/social_platform/src/app/api/program/facades/detail/program-analytics-drilldown.service.spec.ts
  • projects/social_platform/src/app/api/program/facades/detail/program-analytics-drilldown.service.ts
  • projects/social_platform/src/app/api/program/facades/detail/program-analytics-info.service.spec.ts
  • projects/social_platform/src/app/api/program/use-cases/get-program-manager-attention.use-case.spec.ts
  • projects/social_platform/src/app/api/program/use-cases/get-program-manager-projects-not-submitted.use-case.ts
  • projects/social_platform/src/app/domain/program/ports/program.repository.port.ts
  • projects/social_platform/src/app/domain/program/program-analytics-attention.fixture.ts
  • projects/social_platform/src/app/domain/program/program-analytics-attention.model.ts
  • projects/social_platform/src/app/domain/program/program-analytics.model.ts
  • projects/social_platform/src/app/infrastructure/adapters/program/program-http.adapter.ts
  • projects/social_platform/src/app/infrastructure/repository/program/program.repository.ts
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/analytics.component.html
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/analytics.component.spec.ts
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/analytics.component.ts
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-attention-route.spec.ts
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-attention.component.spec.ts
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.html
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.scss
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.spec.ts
  • projects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.ts

@TThanos3000
TThanos3000 marked this pull request as ready for review September 6, 2026 10:03
@TThanos3000
TThanos3000 merged commit 23c5ce0 into dev Sep 6, 2026
@TThanos3000
TThanos3000 deleted the feature/dev-program-not-submitted-attention-ui branch September 6, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant